]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
shellDBus: Export ShowOSD() method on the bus
authorFlorian Müllner <fmuellner@gnome.org>
Sat, 2 Mar 2013 15:22:49 +0000 (16:22 +0100)
committerFlorian Müllner <fmuellner@gnome.org>
Sun, 3 Mar 2013 11:59:09 +0000 (12:59 +0100)
Export a simple method to trigger an OSD popup. gnome-settings-daemon
will use this to replace its own OSD UI.

https://bugzilla.gnome.org/show_bug.cgi?id=613543

js/ui/shellDBus.js

index 6657b35ee67755b6c693683aaa04a5bb7dc4e6ab..1fc0500521cff9a0f2591d5965c1d99ec54bf5a3 100644 (file)
@@ -20,6 +20,9 @@ const GnomeShellIface = <interface name="org.gnome.Shell">
     <arg type="b" direction="out" name="success" />
     <arg type="s" direction="out" name="result" />
 </method>
+<method name="ShowOSD">
+    <arg type="a{sv}" direction="in" name="params"/>
+</method>
 <method name="GrabAccelerator">
     <arg type="s" direction="in" name="accelerator"/>
     <arg type="u" direction="in" name="flags"/>
@@ -111,6 +114,21 @@ const GnomeShell = new Lang.Class({
         return [success, returnValue];
     },
 
+    ShowOSD: function(params) {
+        for (let param in params)
+            params[param] = params[param].deep_unpack();
+
+        let icon = null;
+        if (params['icon'])
+            icon = Gio.Icon.new_for_string(params['icon']);
+
+        Main.osdWindow.setIcon(icon);
+        Main.osdWindow.setLabel(params['label']);
+        Main.osdWindow.setLevel(params['level']);
+
+        Main.osdWindow.show();
+    },
+
     GrabAcceleratorAsync: function(params, invocation) {
         let [accel, flags] = params;
         let sender = invocation.get_sender();